home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / MPW / sed 2.0.3 / Orig / utils.c < prev   
Encoding:
Text File  |  1994-01-09  |  5.3 KB  |  69 lines  |  [TEXT/MPS ]

  1. uct buffer *b;
  2.  
  3.     b=(struct buffer *)bb;
  4.     free(b->b);
  5.     b->b=0;
  6.     b->allocated=0;
  7.     b->length=0;
  8.     free(b);
  9. }
  10.  
  11. int
  12. size_buffer(b)
  13. VOID *b;
  14. {
  15.     struct buffer *bb;
  16.  
  17.     bb=(struct buffer *)b;
  18.     return bb->length;
  19. }
  20.  
  21. void
  22. add_buffer(bb,p,n)
  23. VOID *bb;
  24. char *p;
  25. int n;
  26. {
  27.     struct buffer *b;
  28.     int x;
  29.     char * cp;
  30.  
  31.     b=(struct buffer *)bb;
  32.     if(b->length+n>b->allocated) {
  33.         b->allocated = (b->length + n) * 2;
  34.         b->b=(char *)ck_realloc(b->b,b->allocated);
  35.     }
  36.     
  37.     x = n;
  38.     cp = b->b + b->length;
  39.     while (x--)
  40.       *cp++ = *p++;
  41.     b->length+=n;
  42. }
  43.  
  44. void
  45. add1_buffer(bb,ch)
  46. VOID *bb;
  47. int ch;
  48. {
  49.     struct buffer *b;
  50.  
  51.     b=(struct buffer *)bb;
  52.     if(b->length+1>b->allocated) {
  53.         b->allocated*=2;
  54.         b->b=(char *)ck_realloc(b->b,b->allocated);
  55.     }
  56.     b->b[b->length]=ch;
  57.     b->length++;
  58. }
  59.  
  60. char *
  61. get_buffer(bb)
  62. VOID *bb;
  63. {
  64.     struct buffer *b;
  65.  
  66.     b=(struct buffer *)bb;
  67.     return b->b;
  68. }
  69.